package com.dubbo.service.business.my;

import com.dubbo.common.redis.RedisDao;
import com.dubbo.domain.User;

import java.util.Map;


/**
 * 我的
 * @author lihongwu
 * 2018年12月15日 下午3:03:43
 */
public interface MyService {

	/**
	 * 我的补助金(只有电工才能访问此接口)
	 *
	 * @author lihongwu
	 * 2018年12月15日 下午3:24:14
	 * @param user
	 * @return
	 */
	Map<String, Object> myInstallSubsidy(User user);

	/**
	 * 安装补助金记录(只有电工才能访问此接口)
	 *
	 * @author lihongwu
	 * 2018年12月15日 下午4:07:17
	 * @param user
	 * @param pageStart
	 * @param pageTotal
	 * @return
	 */
	Map<String, Object> installSubsidyDetail(User user, Long pageStart, Long pageTotal);
	
	/**
	 * 提现记录
	 *
	 * @author lihongwu
	 * 2018年12月15日 下午5:03:24
	 * @param user
	 * @param pageStart
	 * @param pageTotal
	 * @return
	 */
	Map<String, Object> drawithDetail(User user, Long pageStart, Long pageTotal);

	/**
	 * 分销商中我的电工
	 * @author gujiahua
	 * 2018年12月17日 上午11:09:34
	 * @param user
	 * @param pageStart
	 * @param pageTotal
	 * @param keyWord
	 * @return
	 */
	Map<String, Object> getElectriciansList(User user, Long pageStart, Long pageTotal, String keyWord);

	/**
	 * 我的分销商
	 * @author gujiahua
	 * 2018年12月17日 上午11:50:19
	 * @param user
	 * @param pageStart
	 * @param pageTotal
	 * @param keyWord
	 * @return
	 */
	Map<String, Object> getDistributorsList(User user, Long pageStart, Long pageTotal, String keyWord);

	/**
	 * 获取推荐二维码 (代理商，分销商，电工都通过这个接口获取推荐二维码)
	 *
	 * @author lihongwu
	 * 2018年12月15日 下午5:31:04
	 * @param user
	 * @return
	 */
	Map<String, Object> getCode(User user);

	/**
	 * 获取个人信息
	 * @author gujiahua
	 * 2018年12月18日 上午11:07:23
	 * @param user
	 * @return
	 */
	Map<String, Object> getInformation(User user);

	/**
	 * 修改头像
	 * @author gujiahua
	 * 2018年12月18日 上午11:28:44
	 * @param user
	 * @param picId
	 * @return
	 */
	Map<String, Object> updateHeaderImg(User user, String picId);

	/**
	 * 获取用户消息
	 * @author gujiahua
	 * 2018年12月18日 上午11:54:56
	 * @param user
	 * @param pageTotal 
	 * @param pageStart 
	 * @return
	 */
	Map<String, Object> getUserMessageList(User user, Long pageStart, Long pageTotal);

	/**
	 * 扫码获取到userId之后调用的接口
		若普通用户扫代理商和分销商，直接成为电工
		若分销商和代理商扫普通用户或代理商扫电工，则页面显示邀请按钮
	 *
	 * @author lihongwu
	 * 2018年12月24日 上午11:38:58
	 * @param request
	 * @param codeUserId
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> sweepCode(User user, String codeUserId);

	/**
	 * sweepCode的后续接口 , 点击邀请类型按钮之后访问   例如：代理商邀请普通用户，有电工和分销商两个按钮，点击按钮后访问该接口
	 *
	 * @author lihongwu
	 * 2018年12月24日 下午5:08:37
	 * @param request
	 * @param codeUserId
	 * @param type  1=邀请成为电工,2=邀请成为分销商
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> sweepCodeAfter(User user, String codeUserId, Integer type);

	/**
	 * 提交反馈
	 * @author wujunyuan
	 * @date 2018年12月28日  上午10:14:54
	 * @param user
	 * @param picIds 图片数组
	 * @param content 意见内容
	 * @return
	 */
	Map<String, Object> option(User user, String picIds, String content);
	
	/**
	 * 根据电工id 获取 电工信息
	 * @author chenluqiang
	 * @date 2019年1月2日 下午4:51:16 
	 * @param user
	 * @param userId
	 * @return
	 */
	Map<String, Object> getUserMsg(User user, String userId);

	/**
	 * 联系客服
	 * @author wujunyuan
	 * @date 2019年1月3日  上午11:18:22
	 * @param user
	 * @return
	 */
	Map<String, Object> getServicePhone(User user);
	
	/**
	 * 查看订单物流
	 * @author chenluqiang
	 * @date 2019年1月3日 下午4:50:02 
	 * @param request
	 * @param orderId 订单id
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> getKuaidi(User user, String orderId) throws Exception;

	/**
	 * 更新店名+具体地址
	 * @author wujunyuan
	 * @date 2019年1月4日  上午9:56:23
	 * @param user
	 * @param shopName
	 * @param shopAddress 
	 * @return
	 */
	Map<String, Object> editShopName(User user, String shopName, String shopAddress);
	
	/**
	 * 将用户数据保存到redis中并将redis中的key返回
	 * 
	 * @author chenwei
	 * @date 2018年4月11日 下午5:03:35
	 * @param request
	 * @param response
	 * @param redisDao
	 * @param user
	 * @return
	 */
	String saveUserByRedis(RedisDao redisDao, User user);

	/**
	 * 获取上级电话
	 *
	 * @author lihongwu
	 * 2019年1月18日 下午4:59:21
	 * @param user
	 * @return
	 */
	Map<String, Object> superiorPhone(User user);

	/**
	 * 绑定微信(存openId,wxName)
	 *
	 * @author lihongwu
	 * 2019年2月22日 上午11:07:19
	 * @param request
	 * @param openId
	 * @param wxName 微信昵称
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> bindWx(User user, String openId, String wxName);

	/**
	 * 获取账号绑定的微信号信息
	 *
	 * @author lihongwu
	 * 2019年2月22日 上午11:14:47
	 * @param request
	 * @return
	 */
	Map<String, Object> getBindWx(User user);

	/**
	 * 获取用户未读消息数量
	 *
	 * @author lihongwu
	 * 2019年2月28日 上午9:47:41
	 * @param request
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> getUserNoReadMessageCount(User user);

	/**
	 * 用户读消息(将用户消息全部设置成已读)
	 *
	 * @author lihongwu
	 * 2019年2月28日 上午9:47:41
	 * @param request
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> readMessage(User user);

	/**
	 * 设置用户极光推送所需的设备注册id
	 *
	 * @author lihongwu
	 * 2019年3月1日 上午11:56:45
	 * @param request
	 * @param registrationId
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> setRegistrationId(User user, String registrationId);

	/**
	 * 保存用户信息
	 * @author wujunyuan
	 * @date 2019年1月4日  上午9:56:23
	 * @param user
	 * @param picId
	 * @param shopAddress 
	 * @param shopName2 
	 * @return
	 */
	Map<String, Object> save(User user, String picId, String shopName, String shopAddress);
	
	/**
	 * 根据用户id获取用户信息
	 * @author chenluqiang
	 * @date 2019年4月1日 下午3:23:43 
	 * @param userId
	 * @return
	 */
	Map<String, Object> getInfoById(String userId);
}
